const mysql = require('mysql')

// 1. 创建链接
const con = mysql.createPool({
  host: '127.0.0.1', // localhost
  port: 3306, // 数据库默认端口
  user: 'root',
  password: '12345678',
  database: '1911A-blogs',
})

// let username = 'danchunyan'
// 以后参数可以使用？代替，有多个参数，就是多个问号，具体的内容，放在后面第二个数组中，就可以不用加引号了
// con.query(`select * from users where username=?`, [username], (err, data) => {
//   console.log(data, 'data')
// })
// [username, password,avatar]

// 第一个参数是sql语句，第二个是第一个sql中对应问号的参数

/**
 * 异步：ajax / 定时器 / 事件 / i-o
 * 问题：获取结果不确定，写代码就不知道什么时候去用这个结果
 * 如何解决这个问题？promise 的包装好异步之后，resolve结果，.then就能获取到
 *
 */
const exec = (sql, params) => {
  return new Promise((resolve, reject) => {
    // 数据库操作 异步操作
    con.query(sql, params, (err, data) => {
      if (err) reject(err)
      resolve(data)
    })
  })
}

module.exports = { exec }
